import { MessageBox } from 'element-ui'
import { getToken } from '@/utils/auth'
// 计算表格自适应高度
const calcHight = function(otherHight) {
  let height = 200
  height = document.getElementById('app').offsetHeight - (document.getElementsByClassName('w-query-search')[0]
    ? document.getElementsByClassName('w-query-search')[0].offsetHeight : 0) - otherHight - 266
  return height
}

const currentDateTime = (type) => {
  let dt = ''
  const yy = new Date().getFullYear()
  const mm = new Date().getMonth() + 1 < 10 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1
  const dd = new Date().getDate() < 10 ? '0' + new Date().getDate() : new Date().getDate()
  const hh = new Date().getHours()
  const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
    : new Date().getMinutes()
  const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
    : new Date().getSeconds()
  dt = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
  if (type === 'date') {
    dt = yy + '-' + mm + '-' + dd
  } else if (type === 'month') {
    dt = yy + '-' + mm
  }
  return dt
}

export const sureDeleteFn = (text, callback) => {
  MessageBox.confirm(text, {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(valid => {
    if (callback) {
      callback()
    }
  }).catch(() => {
    console.log('取消')
  })
}
export const dateFormat = (fmt, date) => {
  if (typeof (date) === 'number') {
    date = new Date(date)
  }
  var o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) { if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) }
  return fmt
}
/**
 * @param {string} money
 * @param {Number} num
 * @param {String} type money(保留两位千分符) billion（只有千分符）
 * @returns {String}
 * 千分符
 */
export const format = (money, num, type) => {
  if (money !== null) {
    let wMoney = money + ''
    if (type !== 'billion') {
      wMoney = (money * 1).toFixed((num && !isNaN(num)) ? num : 2)
    }
    const setMoney = (wMoney).split('.')[0]
    const setMoneyD = (wMoney).split('.')[1] ? (wMoney).split('.')[1] : ''
    const returnMoney = setMoney.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,')
    if ((wMoney).split('.')[1]) {
      return returnMoney + '.' + setMoneyD
    } else {
      return returnMoney
    }
  } else {
    return ''
  }
}
// 11为手机号码
const phoneNumber = (rule, value, callback) => {
  if (value !== '' && value != null) {
    if (/^1[3456789]\d{9}$/.test(value) === false) {
      callback(new Error('请输入正确的手机格式'))
    } else {
      callback()
    }
  } else {
    callback()
  }
}
// 大于0的正整数
const positiveInteger = (rule, value, callback) => {
  if (value !== '' && value != null) {
    if (/^\+?[1-9]\d*$/.test(value) === false) {
      callback(new Error('请输入大于0的整数'))
    } else {
      callback()
    }
  } else {
    callback()
  }
}

export default {
  phoneNumber,
  positiveInteger,
  calcHight,
  currentDateTime
}
